<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
            //父类型
        function Supper()
        {
            this.supProp="Supper property";
        }
        Supper.prototype.showSupperProp=function()
        {
            console.log(this.supProp);
        };

        

        //子类型
        function Sub()
        {
            this.subProp="Sub property";
        }
        //要让Sub原型对象指向Supper()实例对象
        //子类型的原型为父类型的一个实例对象
        Sub.prototype =new Supper();
        
        Sub.prototype.showSubProp=function()
        {
            console.log(this.subProp);
        }
         
        var sub=new Sub();
        sub.showSupperProp();
        //sub.toString();
        sub.showSubProp();

        console.log(sub.constructor);
    </script>
</head>
<body>
    <!--
        方式1：原型链继承
        1.套路
            1.定义父类型构造函数
            2.给父类型的原型添加方法
            3.定义子类型的构造函数
            4.创建父类型的对象赋值给予类型的原型
            5.将子类型原型的构造函数属性设置为子类型
            6.给子类型原型添加方法
            7.创建子类型的对象：可以调用父类型的方法
        2.关键
            1.子类型的原型为父类型的一个实例对象
    -->
</body>
</html>